CBL-6647: CBL sends no known ancestors in VV replication#2213
CBL-6647: CBL sends no known ancestors in VV replication#2213jianminzhao merged 10 commits intomasterfrom
Conversation
|
Code Coverage Results:
|
|
Note: Based on my conversion with Adam, currently SG only expects the current version (CV) in the list of already-known ancestors when using version vector. |
|
I'm going to rebase this PR with the current master branch to get all of the PR validation to pass. |
snej
left a comment
There was a problem hiding this comment.
I don't think the fix is correct. In fact I think our expected behavior isn't correct.
|
The purpose of the ancestor revs sent in the With VVs, the For delta purposes, what we need to send in the response are just the current versions whose bodies we have. So we just send the local version and that of every remote that has a body. (Version, not version vector.) I'll add a new commit that does this. It passes all unit tests, once I updated the expectations in the FindDocAncestors test. |
It's only necessary for the method to return a list of Versions (not vectors.) And it should send all the versions it has bodies for, without trying to compare them against the remote vector.
|
@jianminzhao Could you retest this PR against SG? |
|
Merged in the latest master branch and verified with SG 4.0 that the PR fixed test if CBL-6521(https://jira.issues.couchbase.com/browse/CBL-6521) |
CBL-6647: CBL sends no known ancestors in VV replication (#2213) CBL-6649: Thread-safety problems with mbedTLS (#2348) CBL-7427: Tests Against SG 4.0 (#2349) CBL-5315: Reinstate flaky test "Continuous Push From Both Sides" for VV (#2345) CBL-6666 CBL-6593: Fixed problems syncing partially VV-upgraded database [CBL-6666, CBL-6593] (#2335) dcd4dab Fixed bug in Version::updateClock() (#2342) CBL-7419: Fixed race condition calling Replicator::httpResponse() [CBL-7419] (#2343) CBL-6969: Don't use env vars in CMake project (#2341) CBL-6596: Update VS required version to 2 (#2340)
Also closes CBL-6521
(Addendum by @snej: description of CBL-6647 is "CBL should send an array of ancestors in response to ‘changes’ message. It seems that in VV replication the ancestors list is always empty. This means delta sync doesn’t work.")